﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Assessment.Management.SharedComponent.Entities;
using Assessment.Management.SharedComponent.Constants;
using Assessment.Management.SharedComponent.Params.ManagerParam;
using Assessment.Management.BIZ;

namespace Assessment.Management.UI.Admin.UserControls.Classes
{
    public partial class ClassEdit : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                hdID.Value = GetParam();
                int id = int.Parse(GetParam());
                LoadDataByID(id);
                DepartmentParam param = new DepartmentParam(FunctionType.GetListDepartment);
                MainController.Provider.Execute(param);
                ddlKhoa.DataSource = param.listDepartment;
                ddlKhoa.DataBind();
                ddlKhoa.Items.Insert(0, new ListItem("----------Chọn Khoa----------", ""));
                ddlKhoa.SelectedIndex = 0;
            }
        }

        protected void btnEdit_Click(object sender, EventArgs e)
        {
            UpdateClass();
            Response.Redirect("UniAdmin.aspx?do=classdisplay&id=" + hdID.Value);

        }
        protected void btnExit_Click(object sender, EventArgs e)
        {

            Response.Redirect("UniAdmin.aspx?do=classmanager");
        }

        private void UpdateClass()
        {
            Class cl = new Class();
            cl.ID = int.Parse(txtMaL.Text);
            cl.ClassName = txtTenL.Text.Trim();
            cl.DepartmentID = int.Parse(ddlKhoa.SelectedValue);
            cl.Version = int.Parse(hdVersion.Value);
            cl.UpdatedBy = SMX.smx_UpdatedBy;
            cl.UpdatedDTG = DateTime.Now;
            ClassParam param = new ClassParam(FunctionType.UpdateClass);
            param.Class = cl;
            MainController.Provider.Execute(param);
        }

        protected string GetParam()
        {
            return Request.Params["id"];
        }
        //Lấy ra sản phẩm để sửa. Đầu vào là mã sản phẩm
        private void LoadDataByID(int id)
        {
            ClassParam param = GetClassToEditByID(id);
            BindItemToForm(param);
        }
        //Load dữ liệu lên form
        private void BindItemToForm(ClassParam param)
        {
            txtMaL.Text = GetParam();
            txtTenL.Text = param.Class.ClassName;
            hdVersion.Value = param.Class.Version.ToString();
        }
        //Lấy ra sản phẩm để sửa. Đầu vào là mã sản phẩm
        private ClassParam GetClassToEditByID(int id)
        {
            ClassParam param = new ClassParam(FunctionType.GetClassToEditByCode);
            param.Class = new Class() { ID = id };
            MainController.Provider.Execute(param);
            return param;
        }
    }
}

